#pragma once
#ifndef __G_DYNAMIC_LIBRARY_H__
#define __G_DYNAMIC_LIBRARY_H__

#include <string>

#include "../../Foundation/GUtilities/GTypes.h"

namespace GEngine
{
	class GDynamicLibrary
	{
	private:
		void*			Handle;
		std::string		FileName;
		
	public:
						GDynamicLibrary();
						~GDynamicLibrary();

		void*			GetHandle() const;
		const char*		GetFileName() const;

		void			Unload() PLATFORM;
		bool			Load(const char* Path) PLATFORM;
		
		void*			GetProcedure(const char* Name) PLATFORM;
			
		void			Destroy();
	};
}

#endif